type #Vec2 {
    x: NormalFloat,
    y: NormalFloat
};

type #Vec3 {
    x: NormalFloat,
    y: NormalFloat,
    z: NormalFloat
};

function @adapt:
    &(#Vec2) => #Vec3
    & { x, y } => { |#Vec3| { x, y, z: 0 } };

const Data: String 'VerboseData01
{} :main:Vec2:
	x float
		1
	y float
		2';

entry { crash-on-error
    \ await let vec := { #Vec3@deserialize { encode Data } },
    let { x, y, z } := vec,
    let desc := { "(?, ?, ?)" (x.{String}, y.{String}, z.{String}) },
    \ await { sys::println desc },
    { return () }
};


